home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_09_11
/
9n11073a
< prev
next >
Wrap
Text File
|
1991-08-27
|
1KB
|
28 lines
Listing 5:
# compiled using hc29 -O -S fib.c
_fib:
sub gr1,gr1,16 # bring down register stack pointer
asgeu V_SPILL,gr1,gr126 # test for spill
cpgt gr96,lr6,2 # determine if n<2
jmpt gr96,L00043
add lr1,gr1,28 # stack support operation
add gr1,gr1,16 # repair register stack for return
const gr96,1 ; (0x1) # return value 1 when n<=2
jmpi lr0 # return
asleu V_FILL,lr1,gr127 # test for fill
L00043:
call lr0,_fib
sub lr2,lr6,1 # place n-1 in lr2
add lr3,gr96,0 # hold fib(n-1) in local
call lr0,_fib
sub lr2,lr6,2 # place n-2 in lr2
add gr96,gr96,lr3 # add fib(n-2) and fib(n-1)
add gr1,gr1,16 # repair register stack for return
nop # wait 1-cycle for gr1 update
jmpi lr0 # return
asleu V_FILL,lr1,gr127 # test for fill